home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 11 / FM Towns Free Software Collection 11.iso / t_os / tool / artemis1 / src / makepat2.awk < prev    next >
Encoding:
AWK Script  |  1993-10-10  |  1.4 KB  |  55 lines

  1. # ARTemis の20×20ドット パターン文字列出力を
  2. # 白黒アイコンデータとしてputpict(pict.c) 用データに変換する
  3. #
  4. #static char pic_view[] = {
  5. #    0xfe, 20,20, Black,
  6. #    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  7. #    0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xfc,0x00,0x0f,0xff,0x00,
  8. #    0x1b,0xfd,0x80,0x27,0xfe,0x40,0x47,0xfe,0x20,0x03,0xfc,0x00,
  9. #    0x11,0xf8,0x80,0x0f,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  10. #    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  11. #    0xff
  12. #};
  13.  
  14. BEGIN {
  15.     colmenu = sprintf("%04x", 19*1024 + 19*32 + 22)
  16.     colmenu2 = sprintf("%04x", 24*1024 + 24*32 + 24)
  17.     colwhite = sprintf("%04x", 31*1024 + 31*32 + 31)
  18.     colblack = sprintf("%04x", 0)
  19.     RS = ""
  20.     FS = "[ \t\n]"
  21.     patxlen = patylen = 20
  22. }
  23.  
  24. {
  25.     printf("/* record %d: %d fields */\n", NR, NF)
  26.     printf("static char pic_XXXX[] = {\n");
  27.     printf("\t0xfe,\n");
  28.     xbytes = int((patxlen + 7) / 8)
  29.     for (i=0; i<8; i++)
  30.         bit[i] = 2 ^ (7-i);
  31.     for (i=0; i<xbytes*12; i++)
  32.     {
  33.         black[i] = 0;
  34.     }
  35.     for (y=0; y<patylen; y++)
  36.     {
  37.         for (x=0; x<patxlen; x++)
  38.         {
  39.             field = $(1+patxlen*y+x)
  40.             idx = xbytes * y + int(x/8)
  41.             if (field == colblack)
  42.             {
  43.                 black[idx] += bit[x%8];
  44.             }
  45.         }
  46.     }
  47.     printf("\t%d,%d, Black,\n\t", patxlen,patylen);
  48.     for (i=0; i<xbytes*patylen; i++)
  49.     {
  50.         printf("0x%02x,", black[i]);
  51.         if ((i+1)%patxlen == 0)         printf("\n\t");
  52.     }
  53.     printf("0xff\n};\n\n");
  54. }
  55.